package com.nulldev.util.concurrency.threadIt.v4.emapi.extensions;

public interface ICPULayout {

	public static enum CPUCoreArrangement {
		STANDARD,
		STANDARD_HT,
		BIG_LITTLE,
		BIG_MEDIUM_LITTLE,
	}

	public CPUCoreArrangement getCoreArrangement();

	public int coresIn(final CPUCoreArrangement arrangement);

	public default int threadsIn(final CPUCoreArrangement arrangement) {
		return this.coresIn(arrangement);
	}

	public int getTotalCoreCount();

	public int getTotalThreadCount();
}
